CORRESPONDENCIA
CURRY-HOWARD

“Los tipos son proposiciones. Los programas son demostraciones” (Haskell Curry)



La Correspondencia Curry-Howard

La correspondencia (o isomorfismo) Curry-Howard −por sus proponentes, los lógicos Haskell Curry y William Alvin Howard− se considera uno de los grandes descubrimientos en lógica. Se basa en una idea sorprendentemente simple pero con profundas consecuencias en la relación entre lógica e informática: Por ejemplo, si int es el tipo de los números enteros, la proposición asociada es intp “los enteros están habitados”. Si 3 es un entero, entonces este número es la demostración de la proposición intp. Si un lenguaje de programación tiene enteros, es decir, si tiene tipo int, entonces intp es V (verdadera) y F (falsa) si no los tiene.

Una vez que tenemos proposiciones lógicas asociadas a tipos, es posible definir proposiciones compuestas (con operadores lógicos) basadas en tipos: Dada la correspondencia establecida entre tipos y proposiciones, se suele unificar la notación: un tipo A es equivalente a la proposición A. Por lo tanto: Un programa que realice una demostración tiene unos tipos de entrada (que corresponden a proposiciones) y un tipo de salida (que corresponde a la proposición que se quiere demostrar).

Para demostrar un teorema lógico T, todo lo que tenemos que hacer es construir un tipo t basado en los tipos de entrada (que son axiomas) que refleje la estructura del teorema, y luego encontrar un elemento que tenga ese tipo t. Ejemplos de teoremas lógicos son La correspondencia Curry-Howard inversa −por eso es un isomorfismo− es: La correspondencia Curry-Howard conecta:
La correspondencia Curry-Howard y la unificación entre lógica e informática

Todo empezó en 1934, cuando Haskell Curry interpretó el tipo como proposición y un elemento del tipo como demostración de la proposición. En 1958, Curry llegó a la conclusión de que los tipos permitían expresar la lógica intuicionista. Más tarde, William Alvin Howard descubrió que también se podían expresar gran número de lógicas intucionistas, incluyendo la lógica intuicionista de orden superior. En 1969, Howard descubrió una analogía formal entre los programas del cálculo lambda y las demostraciones de la deducción natural. La correspondencia Curry-Howard ha sido el motor de un gran espectro de nuevas investigaciones. En particular, ha conducido a una nueva clase de sistemas formales que pueden actuar como sistemas de demostración y como lenguajes de programación. Este campo de investigación se suele denominar “teoría de tipos moderna”. Se ha especulado incluso que la correspondencia Curry-Howard podría ser un elemento decisivo para lograr una fundamentación común de la lógica matemática y la informática.


Especificación en MENTAL

En primer lugar, hay que diferenciar entre clase y tipo: Una propiedad puede ser intrínseca (la que denota el propio elemento) o extrínseca (asociada desde fuera del elemento). Una propiedad extrínsca se denomina también atributo o predicado.

Si x es un elemento de una clase C y su tipo correspondiente es t, se cumple la propiedad: Por ejemplo, si tenemos que D={0…9} es el conjunto de todos los dígitos, y llamamos d a su tipo correspondiente, se tiene la equivalencia condicional En la correspondencia Curry-Howard, si un elemento es de tipo t, eso implica la proposición t≠∅ (t está habitado o t no está vacío). En MENTAL, si un elemento x es de tipo t, se cumple x/t y ((x/t)? = α).

En MENTAL tenemos las siguientes características:
MENTAL y la unificación lógica - informática

Desde los tiempos de Gödel, Curry, Church, Turing, Shannon y von Neumann, los fundamentos de la informática han estado intrínsecamente ligados a la matemática, especialmente a la lógica matemática. Este vínculo histórico se vio reforzado con el descubrimiento de la correspondencia Curry-Howard, que proporcionó una conexión directa entre dos disciplinas: programación y lógica formal.

Sin embargo, este vínculo no se ha considerado suficiente, pues se deseaba lograr un isomorfismo completo entre programación y lógica clásica. Se intentaron tres principales alternativas. Unos autores partieron de la programación, seleccionando unas características particulares, como fundamento e intentaron adaptar la lógica clásica a un sistema de tipos. Otros autores eligieron el camino opuesto: eligieron la lógica como fundamento e intentaron derivar nuevos paradigmas, campos o conceptos de programación. Por último, un tercer grupo se centró en la búsqueda de un terreno común intermedio entre programación y lógica.

En esencia, los problemas eran dos: 1) cómo hacer computaciones con la lógica; 2) cómo hacer lógica con la computación.

MENTAL proporciona una respuesta muy sencilla a estos problemas. La respuesta consiste simplemente en trascender la lógica y la informática, de tal manera que la conexión entre informática y la lógica se realiza, no a nivel horizontal, sino a nivel vertical o profundo: mediante los arquetipos primarios: De esta forma, no es necesario buscar un contenido computacional a la lógica clásica.



Bibliografía